﻿using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SerialPortCommunicate
{
    public partial class TForm : Form
    {
        //第一步，实例化MySerialPort
        private MySerialPort serialPort = new MySerialPort();

        public TForm()
        {
            InitializeComponent();
        }

        //第二步，在页面加载中调用初始化和接收函数的方法
        private void MainForm_Load(object sender, EventArgs e)
        {          
            serialPort.initBy();
            serialPort.receiveEvent += receive;
        }

        private void buttonRead_Click(object sender, EventArgs e)
        {
            try
            {
                //请求数据的方法
                serialPort.query_Data();
                serialPort.conver_ModeSingle();
                serialPort.set_Channel1();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

        //可以加到on/off按钮上
        private void buttonOpen_Click(object sender, EventArgs e)
        {


            try
            {
                //当端口open标识为false，再次点击按钮则应该变为true
                if (!serialPort.open)
                {
                    //调用openBy方法打开端口
                    serialPort.openBy("COM3", 115200);
                    //这一行不需要，只是调试用的
                    openBtn.Text = "关闭串口";
                }
                else
                {
                    //调用close方法关闭端口
                    serialPort.close();
                    openBtn.Text = "打开串口";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("没有检测到串口，请先连接底板上的USB再打开软件！", "Error");
            }
        }

        //接收函数，这里是接收返回的数据，对数据要进行什么样的处理，可以编辑这个函数
        //如果不进行更改，serialPort.receiveMessage是接收到的字符串
        private void receive(string e)
        {
            try
            {
                MessageBox.Show(serialPort.receiveMessage);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}
